#!usr/bin/env python  
# -*- coding:utf-8 _*-
""" 
@author:pengfeifu
@file: 选择排序.py 
@version:
@time: 2021/11/14 
@email:1324734112@qq.com
@desc： 选择排序 升序
每一趟，那当前趟数（下标）对应的数据，跟列表后面的一次比较，(小于后面的数，升序)
规则：
选择排序，列表先按照首下标开始排序，
冒泡排序，列表先按照列表倒序排序
@function：常用函数
"""
import random


def select_sort(li):
    for i in range(len(li) - 1):  # 趟数
        temp_index = i
        for j in range(i + 1, len(li)):
            if li[temp_index] > li[j]:  # 升序
                temp_index = j
        li[i], li[temp_index] = li[temp_index], li[i]
        print(li)


# 选择排序，优化；如果当前趟数对应的值，在后面要排序的列表里最小，则无需置换操作
def select_sort2(li):
    for i in range(len(li) - 1):  # 趟数
        temp_index = i
        for j in range(i + 1, len(li)):
            if li[temp_index] > li[j]:  # 升序
                temp_index = j
        if i != temp_index:
            li[i], li[temp_index] = li[temp_index], li[i]
        print(li)


if __name__ == "__main__":
    list_arr = [0, 1, 2, 4, 9, 5, 7, 8, 6, 3]
    select_sort2(list_arr)
